// 未通过
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int temp[N];
void solve() {
  int n;
  cin >> n;

  for (int i = 0; i < n; i++) {
    cin >> temp[i];
  }
  if (temp[0] * 2 >= temp[n - 1]) {
    cout << 2 << endl;
    return;
  }
  vector<int> a;
  for (int i = 1; i <= n - 2; i++) {
    if (temp[i] > temp[0] && temp[i] < temp[n - 1]) { // 优化。
      a.push_back(temp[i]);
    }
  }

  sort(a.begin(), a.end());

  int k = temp[0];
  int s = 2;
  auto p = a.begin();
  while (2 * k < temp[n - 1]) {
    p = lower_bound(p, a.end(), 2 * k);
    // 注意起点,优化。 每次二分，规模变小
    if (*(p - 1) > 2 * k) {
      cout << -1 << endl;
      return;
    }
    k = *(p - 1);
    cout << k << " ";
    s++;
  }
  cout << s << endl;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    solve();
  }

  return 0;
}